<?php


/**
 * 写日志，方便测试（看网站需求，也可以改成把记录存入数据库）
 * 注意：服务器需要开通fopen配置
 * @param $word 要写入日志里的文本内容 默认值：空值
 */
function logRes($word = '', $dir = "test")
{
    $dirnew = "./log/" . $dir . "/";
    if (!is_dir($dirnew)) { //目录不存在则创建wl@20181022修复bug
        mkdir($dirnew, 0777, true);
    }
    $logname = $dirnew . date("Ymd") . ".txt";
    $fp = fopen($logname, "a");
    flock($fp, LOCK_EX);
    fwrite($fp, "执行日期：" . strftime("%Y-%m-%d %H:%M:%S", time()) . "\r\n" . $word . "\r\n");
    flock($fp, LOCK_UN);
    fclose($fp);
}


/**
 * 登录宝塔后台函数  个别宝塔面板不支持phpcurl登录，不知道为啥。
 */
function login_bt($url, $post_data, $cookie)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    //提交post传参
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    // 获取的信息以文件流的形式返回，而不是直接输出。
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //设置Cookie信息保存在指定的文件中
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type:multipart/form-data',
        ));


    //...各种curl属性参数设置
    $out_put = curl_exec($ch);
    curl_close($ch);
    return $out_put;
}

/**
 * 获取站点列表
 */
function get_weblist($url, $post_data, $cookie)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    //提交post传参
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    // 获取的信息以文件流的形式返回，而不是直接输出。
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //读取cookie
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
    //...各种curl属性参数设置
    $out_put = curl_exec($ch);
    curl_close($ch);
    return $out_put;
}

/**
 * 获取某个站点信息
 */
function get_webinfo($url, $post_data, $cookie)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    //提交post传参
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    // 获取的信息以文件流的形式返回，而不是直接输出。
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //读取cookie
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
    //...各种curl属性参数设置
    $out_put = curl_exec($ch);
    curl_close($ch);
    return $out_put;
}


/**
 * 给某个站点添加域名
 */
function add_domain($url, $post_data, $cookie)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    //提交post传参
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    // 获取的信息以文件流的形式返回，而不是直接输出。
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //读取cookie
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
    //...各种curl属性参数设置
    $out_put = curl_exec($ch);
    curl_close($ch);
    return $out_put;
}


/**
 * 给某个站点删除域名
 */
function del_domain($url, $post_data, $cookie)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    //提交post传参
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    // 获取的信息以文件流的形式返回，而不是直接输出。
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //读取cookie
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
    //...各种curl属性参数设置
    $out_put = curl_exec($ch);
    curl_close($ch);
    return $out_put;
}



/**linux下shell发送post请求登录宝塔后台
 * login_bt_shell
 */
function login_bt_shell ($url, $post_str, $cookie){
    $shell='curl   -c  '.$cookie.'   -d    "'.$post_str.'"    "'.$url.'"'; //php发送curl失败，不知道为啥，暂时改成shell发送post请求
    return shell_exec($shell);die;  //linux下使用
}



/**windows的cmd下的curl发送post请求登录宝塔后台
 * login_bt_shell
 */
function login_bt_cmd ($url, $post_str, $cookie){
    $url=urlencode($url);
    $post_str=urlencode($post_str);
    $out=file_get_contents("http://127.0.0.1:7777/cmd_api.php?url=$url&post_str=$post_str&cookie=$cookie");
    return $out;die;
}